Path optimization in production network systems

ABSTRACT

In some embodiments, an apparatus and a system, as well as a method and an article, may operate to receive parameters for a first node of a network, the network including a plurality of segments through which an object is to be routed and a plurality of nodes, including the first node, representative of intersections of two or more segments of the plurality of segments; to generate segment lengths for segments between the first node and neighboring nodes to identify a nearest neighboring node with a shortest segment length relative to the first node; and to repeat operations of receiving parameters, generating segment lengths, and identifying nearest neighboring nodes until a route has been identified between a first endpoint and a second endpoint of the network. Additional apparatus, systems, and methods are disclosed.

BACKGROUND

Operators use production network systems to implement transport,separation, and storage of fluids produced from hydrocarbon reservoirs.Operators can use various hydrodynamic principles to estimate fluidpressure and volume across the production network system for managementof the production network system. However, as the number of wellheadsand the length of gathering lines and pipelines increases, it becomesincreasingly complex and inefficient to manage daily operations in theproduction network. Ongoing efforts are directed to helping operatorsmanage production network systems in an economical and effective manner.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates components of a surface system in which someembodiments can be implemented.

FIG. 2 is a flowchart illustrating a method for network pathoptimization in accordance with some embodiments.

FIG. 3 illustrates an example network model of a production networksystem with a path therethrough generated by a method for network pathoptimization in accordance with some embodiments.

FIG. 4 is an illustration of a traffic map that can be generated toillustrate chaotic flow and chaotic flow junctions in accordance withsome embodiments.

FIG. 5 illustrates a flow regime map representing flow regimesdetermined within segments in a surface system in accordance withvarious embodiments.

FIG. 6 illustrates fluid balance in a production network subsequent todata reconciliation in accordance with various embodiments.

FIG. 7 illustrates flow path adjustment in accordance with variousembodiments.

FIG. 8 illustrates a system including various components as can be usedfor improving or enhancing management of a production network system.

FIG. 9 is a block diagram of a computer system for implementing someembodiments.

DETAILED DESCRIPTION

To address some of the challenges described above, as well as others,apparatus, systems, and methods are described herein to help operatorsplan for more effective usage of oil and gas production network systems.

FIG. 1 illustrates components of a surface system 100 in which someembodiments can be implemented. The illustrated surface system 100includes four wells, Well 1, Well 2, Well 3, and Well 4, which provide,e.g., hydrocarbon-based fluids that flow through other components of thesurface system 100, to end with storing, for example, oil in a tank 102.Each well, e.g., Well 1, Well 2, Well 3, and Well 4, can measure fluidswith different instrumentation. For example, Well 1 can use a multiphaseflow meter 104 that provides real-time or near-real-time measurementsfor oil, water, and gas production. A different well, for example Well2, can use a water cut meter 106 to measure only water flow, whereindifference calculations can be used to calculate oil flow (but not gasflow, for example). Well 3 and Well 4 can use multiphase flow meters,water cut meters, virtual meters, or other meters 108, 110. Any of Well1, Well 2, Well 3, and Well 4 can provide or use well tests that areperformed periodically, for example, monthly. While four wells Well 1,Well 2, Well 3, and Well 4 are illustrated, the surface system 100 caninclude any number of wells.

Wells provide flows through gathering lines 112 that converge at variouspoints. For example, Well 1, Well 2, Well 3, and Well 4 are shown asconverging at manifolds 114, 116. It will be appreciated that any numberof manifolds can be used. From these manifolds 114, 116, operatorstransport fluids through pipelines 118 to separators 120, 122, where theoperators may separate gas, oil and water and dispatch the resultingseparated components to tank 102, to market, or to other treatmentfacilities or reinjection facilities.

Oil and gas companies can use available Bernoulli applications andhydrodynamic methods (e.g., multiphase flow correlations) to estimatepressure and volume across the surface system 100 and to match theseestimates with measured volumes and pressures from wells, separators,tanks, etc. Operators can use systems for identifying gathering lines112 or pipelines 118 that may be exhibiting bottlenecks, leaks, highpressure, or reduced flow, among other error conditions. Operators canadditionally use flow assurance systems to prevent or detect corrosionor erosion in lines. Some operators can use line identification systemsand other diagnostics to identify alternative pathways between wells(e.g., Well 1, Well 2, Well 3 and Well 4) and gathering lines 112 toincrease system flows, to provide back allocation from tanks 102 towellheads to calculate volumes from individual wells, and to identifyoil and gas losses across the surface system 100. However, as surfacesystems 100 link ever-increasing numbers of wells with gathering lines112 and pipelines 118, it becomes ever more complex to manage the dailyoperation in hydrocarbon production systems efficiently.

Embodiments provide integrated components for production networkmanagement in accordance with various embodiments. By using thesevarious components, systems and methods in accordance with embodimentscan compute, model, characterize, diagnose and optimize large productionsystems.

FIG. 2 is a flowchart illustrating a method 200 for network pathoptimization in accordance with some embodiments. A processor 920 (FIG.9), another component of system 900 (FIG. 9), or another system canperform operations of the method 200. In some embodiments, the processor920 will implement a graph search algorithm, for example Dijkstra'salgorithm, to calculate the shortest constrained path in the network,for instance the shortest constrained path for a given well to aseparator in a field with multiple wells, manifolds and gathering linesegments.

The example method 200 begins at operation 202, when the processor 920detects a need to increase throughput or when the processor 920 detectsthat an error condition such as a blockage has occurred in the surfacesystem 100 (FIG. 1). Other example error conditions that can triggerimplementation of the example method 200 include a reduced flow rate ora change in flow regime in a segment of the network as measured bysymptoms such as vibration. The processor 920 can execute, or a separateprocessor or other hardware can execute, a notification module (notshown in the Figures) to notify of error conditions and to initiate theexample method 200 responsive to detection of the error condition. Forexample, the notification module can include or be in communication withan audible or visual alarm, and the method 200 can include generating analarm indication upon detection of the error condition. Furthermore, thenotification module can initiate operations of receiving parameters,generating segment lengths, and identifying nearest neighboring nodes togenerate an updated route responsive to detection of the errorcondition.

Under these or other conditions, the processor 920 will conductoperations according to the example method 200 to propose an improved oroptimized network path to circumvent the blocked region or other segmentthat is under an error condition. In other examples, the processor 920may conduct the operations of the example method 200 periodically, orupon system startup, or upon a manual request from a human or otheruser, by way of nonlimiting example.

Example methods, such as method 200 in accordance with variousembodiments, assume a network model (e.g., a pipeline network model) ofthe surface system 100. FIG. 3 illustrates an example network model 300of a production network system with a path therethrough generated by amethod such as example method 200 for network path optimization inaccordance with some embodiments.

As shown in FIG. 3, a network model 300 can be represented in a mannerat least somewhat similar to a road network, with a plurality ofsegments (e.g., segment s_(1,2), segment s_(2,3), etc.) through which anobject is to be routed. In accordance with a network model, it will beappreciated that the object being routed (instead of vehicles, people,etc.,) comprises crude oil or natural gas.

For purposes of reference or relational database operations, thesesegments can be numbered according to the illustration or according toany other numbering system, and identification information for segmentscan be stored in a database, for example. In accordance withembodiments, these segments are mathematically represented as positiveweights. The network nodes are represented as junctions, wherein eachsegment is associated with a “road interval” between two junctions, suchthat the nodes are representative of intersections of two or moresegments of the plurality of segments. In some embodiments, the nodescan also be mathematically represented as positive weights.

In the network model 300, the mathematical weight of a segmentcorresponds to the length of the associated segment, the time needed totraverse the segment, and the cost of traversing the segment. Themathematical weight of a node can correspond to how efficiently thatnode allows passage of, for example, oil and gas. As an illustrativeexample, the mathematical weight of a node can correspond to whether thenode (e.g., a valve) has an obstruction that reduces flow velocitythrough the node. A weight constraint of a segment or node will takeinto account various parameters that can be output by availableproduction network modeling platforms. One example of an availableproduction network modeling platform is the GAP platform, available fromPetroleum Experts, Inc. of Houston, Tex., although embodiments are notlimited to receiving parameters from GAP or from any other particularproduction network modeling platform.

The network model 300 can also include representations or manifestationsof valves, manifolds and other variations not shown in FIG. 3.

Referring again to FIG. 2, the example method 200 continues withoperation 204, with the processor 920 initializing the algorithm tobegin with a first node, for example node 1 in FIG. 3.

The example method 200 continues with operation 206, with the processor920 receiving parameters for a first node of a network (e.g., Node 1).The parameters can be constrained (e.g., bounded) although embodimentsare not limited thereto. The parameters can include pipe segmentparameters or other parameters from the production network modelingplatform (e.g., GAP) at 220, including parameters indicating a list ofneighboring (or connecting) nodes (hereinafter nodes n) associated witha current node under consideration (hereinafter, node i). Parameters canalso include a pressure difference between node i and one or moreneighboring node(s) n (hereinafter Δp_(in)). Other parameters includethe flow regime for different segments, wherein the flow regime isdefined according to a measured dimensionless Reynolds number Re_(D) inthe corresponding segment. For example, in embodiments, the flow regimeof a segment is indicated as laminar flow for a Reynolds number lessthan 2100, transient flow for a Reynolds number between 2100 and 4000,or turbulent flow for a Reynolds number >4000. However, embodiments arenot limited to any particular ranges of Reynolds numbers for definingflow regime, nor are embodiments limited to defining any particularnumber of flow regimes. For example, other flow regimes as understood bythose of ordinary skill in the art can be defined.

The processor 920 can receive any other additional parameters such aslength (hereinafter l_(in)) and diameter (hereinafter D_(in)) of thesegments connected to otherwise associated with node i.

The example method 200 continues with operation 208 with the processor920 generating weights w_(in) for segments between the current node iand one or more neighboring nodes n. The processor 920 can constrainthese weights to a range of values although embodiments are not limitedthereto. In some embodiments, the processor 920 can generate theseweights based on the parameters received in operation 206 using variouscalculations. For example, in some embodiments, the processor 920defines weights w_(in) as the least square root (LSQR) norm ofconstraint parameters received in operation 206 according to Equation(1):w _(in) =∥w _(pi) ,w _(Rei) ,w _(li) ,w _(Di)∥  (1)where w_(pi) corresponds to weight constraints associated with aconstrained parameter Δp_(in), w_(Rei) corresponds to a constrainedparameter Re_(D), w_(li) corresponds to a constrained parameter l_(in),and w_(Di) corresponds to a constrained parameter D_(in).

In other embodiments, the processor 920 may define weights w_(in) withother methods including linear programming simplex method, probabilisticmethods, Monte Carlo minimization, Markov chains, etc.

The example method 200 continues with operation 210 with the processor920 generating segment lengths (e.g., “constraint-weighted segmentlengths”) for segments between the first node and each neighboring node.These segment lengths can be based on the weights generated according tomethods described above.

For example, with reference to FIG. 3, in operation 210, the processor920 may generate a segment length (or constraint-weighted segmentlength) for the segment s_(1,2) between Node 1 and neighboring Node 2.In cases where other nodes (not shown in FIG. 3) neighbor Node 1,embodiments may generate segment lengths between Node 1 and each ofthose neighboring nodes. As described above, in some embodiments thesegment lengths can be based on constrained values, although embodimentsare not limited thereto, and the segment lengths can therefore in thoseembodiments be referred to as “constraint-weighted segment lengths.” Foreach neighboring node n, the distance value d_(n) of the neighboringnode n is updated (relative to the actual physical length, withoutaccounting for contained values) to {tilde over (d)}_(n) using:{tilde over (d)} _(n)=min{d _(n) ,d _(i) +w _(in)}  (2)where w_(in) corresponds to a weight, for example a constrained weightas described earlier herein with respect to operation 206, of the linkbetween nodes and n in the network model 300 (FIG. 3).

The example method 200 continues with operation 212 with the processor920 identifying a nearest neighboring node with a shortest segmentlength (e.g., constraint-weighted segment length) relative to thecurrent node i (e.g., between the first node (Node 1) and theneighboring node (Node 2), although the nearest neighboring node couldbe any other node with a connecting segment to Node 1). The nearestneighboring node will not necessarily be the nearest in terms ofgeographical distance. On the contrary, the processor 920 identifies thenearest neighboring node with the shortest segment length according byidentifying the neighboring node with the smallest weighted orconstrained distance according to:min_(nϵN) d|n _(n) =d _(n)*  (3)where N corresponds to the number of all nodes n in the network model300.

After satisfying a criterion, for example as defined in Equation (3),the node n* is designated as the new current node i for additionalprocessing or iterations. The example method 200 may continue (startingfrom operation 214) and the search process is iteratively repeated (byfirst incrementing to the next node i in operation 218) until each nodeand connecting segment in the network model 300 has been accounted for,at which point the processor 920 stops processing in operation 216. Forexample, the processor 920 will repeat operation 206 of receivingparameters, generating segment lengths (operation 208), and identifyingnearest neighboring nodes n (operations 210 and 212) until a route hasbeen identified between a first endpoint and a second endpoint of thenetwork.

In some example embodiments, the first endpoint comprises a wellhead(e.g., Well 1, Well 2, Well 3 or Well 4 of FIG. 1) and the secondendpoint comprises a storage unit (e.g., tank 102 of FIG. 1). In someexample embodiments, the processor 920 will have identified the routewhen segment lengths have been generated based on each node of theplurality of nodes. For example, the route may be considered to havebeen identified when every node (e.g., every node 1 through node 27) inthe illustrated network model 300 is used at least as one of the currentnode i or a neighboring node n in Equations (1)-(3).

In some embodiments, the processor 920 can provide information regardingshortest constrained segments, routes, error conditions, or otherinformation, to the production network modeling platform 905 (e.g., aGAP system), such that two-way communication occurs between theprocessor 920 and the production network modeling platform 905.

In the illustrated example of FIG. 3, the processor 920 may iteratethrough some or all of the above operations to generate the route 302,which represents a least-cost route (e.g., a “shortest path” or“shortest constrained path”) between a first endpoint (Node 1) and asecond endpoint (Node 21) of the network. In examples, the firstendpoint may include a wellhead, and the second endpoint may include atank as described earlier herein.

The route may be defined, and thereafter stored in memory (e.g., in arelational database or other database in memory 935 of FIG. 9), as alist of nodes. For example, the route 302 shown in FIG. 3 may be storedas identification information of Node 1, Node 2, Node 3, Node 26, Node10, Node 11, Node 15, Node 20 and Node 21.

The example method 200 can include an operation of generating a visualdisplay of the network (e.g., of the network model 300), wherein thevisual display includes a representation of the route 302 or any otherroutes generated in accordance with embodiments. In some embodiments,particularly in embodiments in which the route 302 of oil or gas is tobe changed, the example method 200 can include providing a controlsignal to control an element of the network based on the recommendation.For example, the processor 920 can provide control signals (or thecontroller 925 can provide control signals) to control valves 124 withinthe surface system 100 (FIG. 1).

When executing the example method 200, the processor 920 will assumethat segment weights correspond to nonnegative values. Accordingly, atleast because the pressure difference between corresponding networknodes can have a negative sign, the processor 920 will use an absolutevalue of such pressure difference for operations of method 200. As analternative to the Dijkstra algorithm, the processor 920 can find theshortest constrained network path using linear programming in someembodiments. In still other embodiments, the processor 920 will find theshortest constrained network path by solving the Eikonal equation usingFast Marching Methods (FMM), wherein the processor 920 will mimic thenetwork paths using geodesic distances to solve the problem between twopoints in terms of topographical distance and time.

FIG. 4 is an illustration of a traffic map 400 that can be generated toillustrate chaotic flow and chaotic flow junctions in accordance withsome embodiments.

The processor 920 can provide a graphical user interface (GUI) on adisplay unit 955 (FIG. 9) that includes GUI elements to allow operatorsto visualize the surface system 100 using traffic light color codes(illustrated with shaded segments in FIG. 4) to show locations in whichlines flow optimally, locations in which lines are not flowing at all,and locations in which lines are flowing hut with certain errorconditions. The GUI can be interactive to allow a human operator orother operator to manipulate components of the traffic map 400. In someembodiments, the processor 920 can use a history-matching methodperformed against field measurements, and the traffic map 400 will showunexpected behavior.

The traffic map 400 can show, in real time or near real-time, paths andflow that have been modeled using fluid dynamics. FIG. 4 shows pathways402 to indicate fluid flow with normal perturbation. Well 3 exhibits aninterval 404 and 406 indicating a transition zone with turbulent flowdue to reduced pipe diameter or junction with another line. The trafficmap 400 can connect to or be used in conjunction with any real-timesurveillance systems used by an operator of a production network.

FIG. 5 illustrates a flow regime map 500 representing flow regimesdetermined within segments in a surface system in accordance withvarious embodiments. Based on physical models, different flow regimeswill be calculated to enable estimates of fluid velocity and pressureprofiles across the entire system. The processor 920 can use these flowregimes to identify areas with turbulent or chaotic flow that generatehigh vibrations, corrosion, erosion, etc. The processor 920 can receiveflow regime information as described earlier herein with reference tooperation 206 (FIG. 2). In some embodiments, flow regimes can bedisplayed on a GUI in dynamic form (e.g., in interactive time-dependentform, in continuous sequence or time-lapse intervals) using thesuperficial fluid velocity methodology, which calculates thehypothetical flow velocity under the assumption that the given phase offluid is the only present phase in the observed system. Using a displaysuch as that shown in FIG. 5, operators can visually identifybottlenecked areas. Based on such identification, whether visual orotherwise, operators, the processor 920, or another process or devicecan trigger a method such as example method 200 (FIG. 2) to circumventbottlenecked areas.

FIG. 5 illustrates seven flow regimes, although embodiments are notlimited thereto and any number or identity of flow regimes can be used.For example, a chaotic flow regime can exist at segments 502 and 504.Elongated bubble flow can exist at segment 506. Stratified wavy flow canexist at segments 508, and stratified flow can exist at segments 510.Slug flow can exist at segment 512. While various identifiers, e.g.,“chaotic,” dispersed bubble,” “annular,” “elongated bubble,” “slug,”“stratified,” and stratified wavy” have been used to describe variousflow regimes, it will be understood that other identifiers or adjectivescan be used in accordance with any hydrocarbon production practice orstandard usage. The flow regimes types illustrated in FIG. 5, and otherflow regime types, can be determined by the processor 920, by GAP, or byother systems based on the superficial velocity of gas and liquid in apipe network system of multiphase flow.

In some embodiments, the processor 920 can perform data reconciliationof measurement data to help data fit into constraints for use in otheralgorithms, for example in algorithms executing during network pathoptimization as described above with reference to method 200. FIG. 6illustrates fluid balance in a production network 600 subsequent to datareconciliation in accordance with various embodiments.

In some embodiments, the processor 920 can use real time data fromwell-head, separator, manifolds and tanks to reconcile the entireproduction network 600 to correct measurement errors (whether random orsystematic) and to provide virtual metering. The processor 920 canperform such reconciliation using a reconciliation model, which can berepresented as a nonlinear system of equations F(y)=0, where y=(y=y₁ . .. y_(n))) is a measurement vector of n measured variables, and wherein yrepresents a measured fluid flow with conservation of mass as aconstrained objective. Given the measurement vector y the datareconciliation is expressed as an optimization problem, subject toF(y)=0:

$\begin{matrix}{\min_{y^{*}}{\sum\limits_{i = 1}^{n}( \frac{y_{i}^{*} - y_{i}}{\sigma_{i}} )^{2}}} & (4)\end{matrix}$where y_(i)* is a reconciled value and σ_(i) is a standard deviation ofi-th measurement, and wherein y_(min)≤y*≤y_(max), where y_(min) andy_(max) respectively represent the minimum and maximum constraints(e.g., “bounds”) of measured variables. The term

$\min_{y^{*}}{\sum\limits_{i = 1}^{n}( \frac{y_{i}^{*} - y_{i}}{\sigma_{i}} )^{2}}$can also be referred to as the “penalty” of the measurement i.

In embodiments, the processor 920 will perform data reconciliation tominimize the overall correction (sum of all penalty terms) to satisfythe system constraints. For example, with reference to FIG. 6, theproduction network 600 includes four measurement nodes at Well 1, Well2, Well 3 and Well 4 using three types of measurement meters. In theillustrated example of FIG. 6, Well 1 includes a multiphase flow meter(MPFM) 602, Well 3 and Well 4 include virtual meters 604 and 606, andWell 2 includes a watercut (WC) meter 608. Meters 602, 604, 606 and 608measures the fluid flow with an associated tolerance shown in the table609. The processor 920 will reconcile measured data and minimize thepenalty within uncertainty constraints. For example, it will be notedthat the reconciled sum 610 of all flows Q from all wells in theproduction network 600 is 13,970 Standard Barrels per day (STb/d), e.g.,whereas the tank measures 13,500 STb/d at 612. In other words,reconciled flows 614 total a different number than measured flows 616.In some embodiments, when the reconciled sum 610 is different from themeasured Q value 612, operators may be notified that instrumentation,for example meters 602, 604, 606 and 608, should be calibrated orreplaced.

FIG. 7 illustrates flow path adjustment performed in accordance withvarious embodiments. As illustrated in FIG. 7, different pathways can betaken through a production network system 700. The processor 920 canselect these different pathways to balance or enhance operations in theproduction network system 700. For example, at Well 3, the fluids maybegin by going through Path A to the illustrated storage tank via Sep 2.The processor 920 can determine the different pathways (e.g., Path A andPath B) that converge at a node, or the processor 920 can receiveinformation regarding predetermined pathways, for example. The processor920 may later calculate Path B that offers better production performanceand less operational risk than the original Path A by bypassingbottlenecks or blocked valves, etc.

FIG. 8 illustrates a system 800 including various components as can beused for improving or enhancing management of a production networksystem. The system 800 can include a fluid dynamics module 802. Thefluid dynamics module 802 can model surface systems 100 to update andmodel current production settings, to optimize choke settings, to managebottlenecks, to improve distribution of available volumes of gas andwater for gas lift and water injection, and to monitor and manageoptimal pipe line pressure, by way of nonlimiting example.

The system 800 can further include a flow regime module 804 to determinedifferent flow regimes as described earlier herein with reference tooperation 206 (FIG. 2) and FIG. 5. The flow regime module 804 willdetermine flow regimes as part of identifying velocity and pressureprofiles across the surface system 100 to identify areas with turbulentor chaotic flow that generate high vibrations, corrosion, erosion, etc.In some embodiments, these flow regimes can be shown graphically indynamic form as described above with reference to FIG. 5 using a methodin accordance with various embodiments based on superficial fluidvelocity.

The system 800 can further include a traffic map module 806 to providevisualization of the surface system 100 using traffic light color codes(not shown in the Figures) as described earlier herein with reference toFIG. 4.

The system 800 can further include a data reconciliation module 808 toperform statistical optimization that uses real time data fromwellheads, manifolds, separators and tanks to reconcile the surfacesystem 100 as described earlier herein with reference to FIG. 6 andEquation (4).

The system 800 can further include a network path optimization module810, to perform operations described earlier herein with reference toFIG. 2. Taken separately or together, operators can use components ofthe system 800 to manage production network systems.

FIG. 9 depicts a block diagram of features of a system 900 in accordancewith various embodiments. The system 900 can provide a recommendationfor improved or optimized paths through a surface system 100 refinementof measurement data related to measured parameters as described above.Additionally, the system 900 can provide any other functionalitydescribed above with reference to FIGS. 1-8.

The system 900 can include a production network modeling platform 905.As described earlier herein, embodiments can include GAP, available fromPetroleum Experts of Houston, Tex., as the production network modelingplatform 905, although embodiments are not limited thereto.

The system includes a processor 920. The production network modelingplatform 905 can execute on the processor 920 or on another processor(not shown in FIG. 9) of the system 900. The processor 920 can provideinformation to the production network modeling platform 905, in additionto receiving information from the production network modeling platform905.

The system 900 can additionally include a controller 925 and a memory935. The controller 925 can operate to provide geographic coordinates tocontrol measurement tools 960 to obtain refined measurement data basedon the geographic coordinates as described herein, or the system 900 canprovide these coordinates to another system (not shown in FIG. 9) forcontrolling a measurement instrument. The measurement tools 960 caninclude multiphase fluid meters (MPFMs), watercut meters, virtualmeters, or other meters described earlier herein, or the measurementtools 960 can further include or alternatively include downholemeasurement tools, logging tools, etc. The memory 935 can storemeasurement data for one or more of the parameters related to thenetwork path optimization operations or other operations. The processor920 can access the measurement data to perform any of the operationsdescribed herein. The memory 935 can further store data related themeasurement tools 960, for example predicted error information of themeasurement tools 960, although embodiments are not limited thereto.

The communications unit 940 can provide surface communications withwellheads, valves, manifolds, remote operator sites, etc., inmeasurement and control operations. Such surface communications caninclude wired and wireless systems. Additionally, the communicationsunit 940 can provide downhole communications in a measurement operation,although such downhole communications can also be provided by any othersystem located at or near measurement coordinates of a surface of theEarth where measurement will take place. Such downhole communicationscan include a telemetry system.

The system 900 can also include a bus 927, where the bus 927 provideselectrical conductivity among the components of the system 900. The bus927 can include an address bus, a data bus, and a control bus, eachindependently configured. The bus 927 can also use common conductivelines for providing one or more of address, data, or control, and thecontroller 925 can regulate usage of these lines. The bus 927 caninclude instrumentality for a communication network. The bus 927 can beconfigured such that the components of the system 900 are distributed.Such distribution can be arranged between surface components, downholecomponents and components that can be disposed on the surface of a well.Alternatively, various ones of these components can be co-located, suchas on one or more collars of a drill string or on a wireline structure.

In various embodiments, the system 900 comprises peripheral devices 945that can include displays, user input devices, additional storagememory, and control devices that may operate in conjunction with thecontroller 925 or the memory 935. For example, the peripheral devices945 can include a user input device to receive user input responsive toproviding example GUI screens for displaying information similar to thatdescribed above with reference to FIGS. 1, 3-6, and 8.

In an embodiment, the controller 925 can be realized as one or moreprocessors. The peripheral devices 945 can be programmed to operate inconjunction with display unit(s) 955 with instructions stored in thememory 935 to implement a GUI to manage the operation of componentsdistributed within the system 900. A GUI can operate in conjunction withthe communications unit 940 and the bus 927.

In various embodiments, a non-transitory machine-readable storage devicecan comprise instructions stored thereon, which, when performed by amachine, cause the machine to perform operations, the operationscomprising one or more features similar to or identical to features ofmethods and techniques described herein. A machine-readable storagedevice, herein, is a physical device that stores data represented byphysical structure within the device. Examples of machine-readablestorage devices can include, but are not limited to, memory 935 in theform of read only memory (ROM), random access memory (RAM), a magneticdisk storage device, an optical storage device, a flash memory, andother electronic, magnetic, or optical memory devices, includingcombinations thereof.

One or more processors such as, for example, the processor 920, canoperate on the physical structure of such instructions. Executing theseinstructions determined by the physical structures can cause the machineto perform operations to receive parameters for a first node of anetwork, the network including a plurality of segments through which anobject is to be routed and a plurality of nodes, including the firstnode, representative of intersections of two or more segments of theplurality of segments; to generate segment lengths for segments betweenthe first node and neighboring nodes of the plurality of nodes toidentify a nearest neighboring node with a shortest segment lengthrelative to the first node; and to repeat operations of receivingparameters, generating segment lengths, and identifying nearestneighboring nodes until a route has been identified between a firstendpoint and a second endpoint of the network.

The instructions can include instructions to cause the processor 920 toperform any of, or a portion of the above-described operations inparallel with performance of any other portion of the above-describedoperations. The processor 920 can store, in memory 935, any or all ofthe data received from the production network modeling platform or frommeasurement tools 960.

Upon reading and comprehending the content of this disclosure, one ofordinary skill in the art will understand the manner in which a softwareprogram can be launched from a computer-readable medium in acomputer-based system to execute the functions defined in the softwareprogram, to perform the methods described herein. One of ordinary skillin the art will further understand the various programming languagesthat may be employed to create one or more software programs designed toimplement and perform the methods disclosed herein. For example, theprograms may be structured in an object-orientated format using anobject-oriented language such as Java or C#. In another example, theprograms can be structured in a procedure-orientated format using aprocedural language, such as assembly or C. The software components maycommunicate using any of a number of mechanisms well known to those ofordinary skill in the art, such as application program interfaces orinterprocess communication techniques, including remote procedure calls.Furthermore, software components can communicate with databases, forexample relational databases, using SQL stored procedures, etc. Theteachings of various embodiments are not limited to any particularprogramming language or environment. Thus, other embodiments may berealized.

Various Example Embodiments

For example, referring now to FIGS. 1-9, it can be seen that in someembodiments, a method comprises receiving parameters for a first node ofa network, the network including a plurality of segments through whichan object is to be routed and a plurality of nodes, including the firstnode, representative of intersections of two or more segments of theplurality of segments; generating segment lengths for segments betweenthe first node and neighboring nodes of the plurality of nodes toidentify a nearest neighboring node with a shortest segment lengthrelative to the first node; and repeating operations of receivingparameters, generating segment lengths, and identifying nearestneighboring nodes until a route has been identified between a firstendpoint and a second endpoint of the network.

In some embodiments, the object to be routed comprises crude oil ornatural gas.

In some embodiments, the route has been identified when segment lengthshave been generated based on each node of the plurality of nodes.

In some embodiments, a method comprises generating segment lengths bygenerating, based on the parameters, weights between the first node andneighboring nodes of the first node; and generating the segment lengthsbased on the weights.

In some embodiments, the parameters include a list of neighboring nodes,relative to the first node; a pressure difference between the first nodeand each neighboring node of the list; a flow regime for each segment ofthe plurality of segments, wherein the flow regime is determined basedon a Reynolds number corresponding to each segment; and a length anddiameter for each segment of the plurality of segments.

In some embodiments, generating the weights includes calculating a leastsquare root (LSQR) of the parameters.

In some embodiments, a method comprises performing the opera ions of themethod upon detection of an error condition in the network.

In some embodiments, the error condition includes one of a reduced flowrate, or a change in flow regime in a segment of the network, and amethod comprises generating an alarm indication upon detection of theerror condition.

In some embodiments, the first endpoint comprises a wellhead and thesecond endpoint comprises a storage unit.

In some embodiments, the route includes a list of nodes between thewellhead and the storage unit.

In some embodiments, a method comprises generating a visual display ofthe network, wherein the visual display includes a representation of theroute.

In some embodiments, a method comprises providing a control signal tocontrol an element of the network based on the route.

Some embodiments take the form of a system. Thus, in some embodiments, asystem comprises one or more processors to receive parameters for afirst node of a network, the network including a plurality of segmentsthrough which an object is to be routed and a plurality of nodes,including the first node, representative of intersections of two or moresegments of the plurality of segments; generate segment lengths forsegments between the first node and neighboring nodes of the pluralityof nodes to identify a nearest neighboring node with a shortest segmentlength relative to the first node; and repeat operations of receivingparameters, generating segment lengths, and identifying nearestneighboring nodes until a route has been identified between a firstendpoint and a second endpoint of the network. The system further maycomprise memory to store parameters for the first node of the network,and parameters to define the route, and the system can further comprisevalves to receive control signals based on the route.

In some embodiments, a system can include a display to display agraphical user interface (GUI) including GUI elements representative ofthe route.

In some embodiments, a system can include a notification module tonotify of an error condition in the network and to initiate operationsof receiving parameters, generating segment lengths, and identifyingnearest neighboring nodes to generate an updated route responsive todetection of the error condition.

Some embodiments take the form of a non-transitory computer readablestorage device having instructions stored thereon which, when performedby a machine, cause the machine to perform operations of any of theembodiments described above.

The above-described embodiments can allow oil and gas producers toincrease and enhance utilization of wells and gathering networks, toenhance productivity of engineers and operators, to increase production,and to improve economic returns, by calculating a least-cost routebetween a wellhead and storage facility, among other improvements.

Although specific embodiments have been illustrated and describedherein, it will be appreciated by those of ordinary skill in the artthat any arrangement that is calculated to achieve the same purpose maybe substituted for the specific embodiments shown. Various embodimentsuse permutations or combinations of embodiments described herein. It isto be understood that the above description is intended to beillustrative, and not restrictive, and that the phraseology orterminology employed herein is for the purpose of description.Combinations of the above embodiments and other embodiments will beapparent to those of ordinary skill in the art upon studying the abovedescription.

What is claimed is:
 1. A computer-implemented method comprising:monitoring, by a computer system, a flow of fluid through a pipelinenetwork, the pipeline network comprising a plurality of nodes, whereineach node in the plurality of nodes is connected to two or more pipesegments of the pipeline network; detecting, by the computer system, anerror condition in a pipe segment of the pipeline network along a firstpath between a first endpoint and a second endpoint of the pipelinenetwork, based on the monitoring; responsive to the detection of theerror condition, obtaining, by the computer system from measurementdevices associated with one or more of the plurality of nodes in thepipeline network, parameters for at least one of the plurality of nodesconnected to the pipe segment associated with the detected errorcondition and parameters for one or more neighboring nodes connected toother pipe segments that are also connected to the at least one node;generating segment lengths for the other pipe segments connected to theat least one node and the one or more neighboring nodes, based on theobtained parameters; identifying a nearest neighboring node from the oneor more neighboring nodes of the at least one node, based on thegenerated segment lengths of the other pipe segments, wherein thenearest neighboring node is connected to one of the other pipe segmentsthat is determined to have a shortest of the generated segment lengths;determining a second path for the fluid to flow between the first andsecond endpoints of the pipeline network and circumvent the pipe segmentassociated with the error condition, based on the identified nearestneighboring node of the at least one node; and adjusting the flow of thefluid through the pipeline network according to the second path.
 2. Themethod of claim 1, wherein the fluid comprises hydrocarbon-based fluids.3. The method of claim 1, wherein the pipeline network includes one ormore valves between the first and second endpoints, and wherein theadjusting comprises controlling the one or more valves to route thefluid through the pipeline network according to the second path.
 4. Themethod of claim 1, wherein generating segment lengths comprises:generating, based on the parameters, weights between the at least onenode and the one or more neighboring nodes; and generating the segmentlengths based on the weights.
 5. The method of claim 1, wherein theparameters include: a list of the one or more neighboring nodes of theat least one node; a pressure difference between the at least one nodeand each of the one or more neighboring nodes of the list; a flow regimefor each pipe segment between the first and second endpoints of thepipeline network, wherein the flow regime is determined based on aReynolds number; and a length and diameter for each pipe segment betweenthe first and second endpoints of the pipeline network.
 6. The method ofclaim 4, wherein generating the weights includes calculating a leastsquare root (LSQR) of the parameters.
 7. The method of claim 1, whereinthe error condition includes at least one of a reduced flow rate or achange in flow regime in the pipe segment associated with the errorcondition.
 8. The method of claim 7, wherein the method further includesgenerating an alarm indication upon detection of the error condition. 9.The method of claim 1, wherein the first endpoint comprises a wellheadand the second endpoint comprises a storage unit, and the fluid flowsfrom the wellhead to the storage unit.
 10. The method of claim 9,wherein each of the first and second paths includes a plurality of nodesbetween the wellhead and the storage unit.
 11. The method of claim 1,further comprising: generating a visual display of the pipeline network,wherein the visual display includes a representation of the first andsecond paths of the fluid through the pipeline network.
 12. The methodof claim 1, further comprising: providing a control signal to control anelement of the pipeline network and adjust the flow of the fluid basedon the second path.
 13. A system comprising: one or more processors; anda memory coupled to the one or more processors and storingprocessor-executable instructions, which, when executed by the one ormore processors, cause the one or more processors to perform a pluralityof operations, including operations to: monitor a flow of fluid along afirst path through a pipeline network between a first endpoint and asecond endpoint of the pipeline network, the pipeline network comprisinga plurality of nodes, wherein each node in the plurality of nodes isconnected to two or more pipe segments of the pipeline network; detectan error condition in a pipe segment between the first and secondendpoints of the pipeline network, based on the monitoring; obtain, frommeasurement devices associated with one or more of the plurality ofnodes in the pipeline network, parameters for at least one of theplurality of nodes connected to the pipe segment and parameters for oneor more neighboring nodes connected to other pipe segments that are alsoconnected to the at least one node; generate segment lengths for theother pipe segments connected to the at least one node and the one ormore neighboring nodes, based on the obtained parameters; identify anearest neighboring node from the one or more neighboring nodes of theat least one node, based on the generated segment lengths of the otherpipe segments, wherein the nearest neighboring node is connected to oneof the other pipe segments that is determined to have a shortest of thegenerated segment lengths; determine a second path for the fluid to flowbetween the first and second endpoints of the pipeline network andcircumvent the pipe segment associated with the error condition, basedon the identified nearest neighboring node of the at least one node; andprovide control signals to control valves in the pipeline network inorder to route the fluid through the pipeline network based on thesecond path.
 14. The system of claim 13, further comprising a display todisplay a graphical user interface (GUI) including GUI elementsrepresentative of the flow of the fluid through the pipeline network.15. The system of claim 13, wherein the operations performed by the oneor more processors further comprise operations to: generate anotification that notifies a user of the error condition in the pipelinenetwork, wherein the operations to generate the notification, obtain theparameters, generate the segment lengths, and identify the nearestneighboring nodes are performed responsive to the detection of the errorcondition.
 16. A non-transitory computer-readable storage medium havinginstructions stored thereon which, when executed by a computer, causethe computer to perform operations, the operations comprising:monitoring a flow of fluid through a pipeline network, the pipelinenetwork comprising a plurality of nodes, wherein each node in theplurality of nodes is connected to two or more pipe segments of thepipeline network; detecting an error condition in a pipe segment of thepipeline network along a first path between a first endpoint and asecond endpoint of the pipeline network, based on the monitoring;obtaining, from measurement devices associated with one or more of theplurality of nodes in the pipeline network, parameters for at least oneof the plurality of nodes connected to the pipe segment associated withthe detected error condition and parameters for one or more neighboringnodes connected to other pipe segments that are also connected to the atleast one node; generating segment lengths for the other pipe segmentsconnected to the at least one node and the one or more neighboringnodes, based on the obtained parameters; identifying a nearestneighboring node from the one or more of the neighboring nodes of the atleast one node, based on the generated segment lengths of the other pipesegments, wherein the nearest neighboring node is connected to one ofthe other pipe segments that is determined to have a shortest of thegenerated segment lengths; determining a second path for the fluid toflow between the first and second endpoints of the pipeline network andcircumvent the pipe segment associated with the error condition, basedon the identified nearest neighboring node of the at least one node; andadjusting the flow of the fluid through the pipeline network accordingto the second path.
 17. The non-transitory computer-readable storagemedium of claim 16, wherein the operations performed by the computerfurther include operations comprising: generating, based on theparameters, weights between the at least one node and the one or moreneighboring nodes; and generating the segment lengths based on theweights.
 18. The non-transitory computer-readable storage medium ofclaim 17, wherein generating the weights includes calculating a leastsquare root (LSQR) of the parameters.
 19. The non-transitorycomputer-readable storage medium of claim 16, wherein the operationsperformed by the computer further include operations comprising:responsive to detecting the error condition in the pipeline network,initiating the operations determining the second path as an updatedroute for the fluid to flow between the first and second endpoints ofthe pipeline network.
 20. The non-transitory computer-readable storagemedium of claim 19, wherein the error condition includes at least one ofa reduced flow rate or a change in flow regime in the pipe segmentassociated with the error condition.